import { Tag } from "ant-design-vue"
import { BasicColumn } from "/@/components/Table/index"
import { ErrorTypeEnum } from "/@/enums/exceptionEnum"
import { useI18n } from "/@/hooks/web/useI18n"

const { t } = useI18n()

export function getColumns(): BasicColumn[] {
  return [
    {
      dataIndex: "type",
      title: t("sys.errorLog.tableColumnType"),
      width: 80,
      customRender: ({ text }) => {
        const color =
          text === ErrorTypeEnum.VUE
            ? "green"
            : text === ErrorTypeEnum.RESOURCE
              ? "cyan"
              : text === ErrorTypeEnum.PROMISE
                ? "blue"
                : ErrorTypeEnum.AJAX
                  ? "red"
                  : "purple"
        return <Tag color={color}>{() => text}</Tag>
      },
    },
    {
      dataIndex: "url",
      title: "URL",
      width: 200,
    },
    {
      dataIndex: "time",
      title: t("sys.errorLog.tableColumnDate"),
      width: 160,
    },
    {
      dataIndex: "file",
      title: t("sys.errorLog.tableColumnFile"),
      width: 200,
    },
    {
      dataIndex: "name",
      title: "Name",
      width: 200,
    },
    {
      dataIndex: "message",
      title: t("sys.errorLog.tableColumnMsg"),
      width: 300,
    },
    {
      dataIndex: "stack",
      title: t("sys.errorLog.tableColumnStackMsg"),
    },
  ]
}

export function getDescSchema(): any {
  return getColumns().map((column) => {
    return {
      field: column.dataIndex!,
      label: column.title,
    }
  })
}
